using System;
using UnityEngine;
#if UNITY_EDITOR
using System.Reflection;
#endif

namespace IQIGame.Onigao.Framework
{
    public abstract class FrameMonoModule : MonoBehaviourOptimized
    {
        protected override void Awake()
        {
            base.Awake();
            FrameworkEntry.RegisterModule(this);
        }

        public void Init()
        {
            OnInit();
        }

        public void EnterGame()
        {
            OnEnterGame();
        }

        public void Shutdown()
        {
            OnShutdown();
        }

        protected abstract void OnInit();

        protected abstract void OnEnterGame();

        protected abstract void OnShutdown();

    }
}
